今天所要談 Propagation-Based 方法在 CNN 中的作用是透過計算梯度、反向傳播或不同層的特徵來量化每個像素或特徵對預測結果的影響。
從昨天的 Gradient-based 方法我們了解到,可以使用梯度來估算每個輸入圖片的像素與最終分類結果之間的關係。換句話說,透過計算每個輸入圖片像素對於最終預測結果的影響,我們可以瞭解它們對於分類標籤的預測的貢獻程度。最終這些貢獻的總和等同於該圖像對於分類結果的預測。事實上這個概念可以在 CNN 的每一層都應用,即推斷每個特徵圖中的特徵與最終結果之間的相關性。這使得我們可以從最終輸出層開始回溯,而不僅僅針對輸入層計算梯度。以下為各位整理兩篇著名的 Propagation-Based 相關文獻:
Layer-wise relevance propagation 是一種 Propagation-Based 方法的實例,用於理解深度神經網路對輸入數據的預測是如何形成的,並將其分解成單個輸入維度的相關性分數。這可以幫助我們理解神經網路中哪些部分對最終預測貢獻最大,對於模型的解釋和可解釋性非常有用。該方法被擴展到處理卷積神經網路中的特殊非線性操作,以更好地理解這些網路的工作原理。
從下圖可見,左側輸入一張圖片,經過網路中的一系列神經元計算後得到輸出結果 xf。這個輸出 xf 等同於 Rf,實際上是每一層的特徵經過相關性計算後總和的結果。因此右側的部分表示從輸出結果開始,透過層層傳遞,將重要訊息回饋到最初的輸入圖片中。
貓
的存在。這個得分是由輸出神經元 xf 表示的,xf 的值編碼了圖像中是否包含貓的訊息。貓
的存在有多大的貢獻。貓
的訊息。我們可以發現 LRP 方法主要是從最終輸出層逐步追溯到輸入層,逐層理解前層重要的神經元是如何影響輸出的,以此來獲得解釋性。下面公式 Ri 就是第 i 層節點的 Relevance,要計算它就是 Rj 第 j 層所有節點的 Relevance 並乘上一個權重,這個權重就是 xi 節點經過計算往下一層傳遞的數值。
以下這三種不同的 LRP 規則是用來調整相對重要性在不同神經網路層次之間的傳播方式。它們有助於解釋模型的預測,並提供了對模型中不同層次神經元貢獻的不同理解。根據神經元所在的層次,選擇適當的 LRP 規則可以更好地理解模型的工作原理。
應用層級: LRP-0 主要用於深層神經元,即神經網路中較高層次的神經元。
運作原理: 在 LRP-0 中,相對重要性(relevance)會傳遞到較低層的神經元,而且傳遞的方式是基於某種權重分佈的。這種權重分佈可以基於神經網路的結構和連接來計算,以確保相對重要性能夠合理地傳遞到較低層的神經元,間接提高了較高層次的貢獻。
應用層級: LRP-ε 通常應用於中層神經元,即神經網路中處於中間位置的神經元。
運作原理: 在 LRP-ε 中,相對重要性會以更平均的方式傳遞到較低層的神經元,不像 LRP-0 那麼專注於少數高度相對重要的神經元。這種方法有助於平衡訊息的傳遞,以更全面地考慮中間層次的貢獻。
應用層級: LRP-γ 通常應用於較淺層的神經元,即神經網路中較低層次的神經元。
運作原理: LRP-γ 會更強調相對重要性在較低層神經元之間的分佈,這意味著相對重要性會更加集中於較低層的特定神經元。這有助於解釋模型為什麼會對某些輸入特徵產生強烈的反應,並且能夠將模型的決策過程更清晰地關聯到較低層次的特徵。
讓我們來觀察不同計算方法對最終解釋性的影響。在下圖中,紅色的點代表對辨識結果有正向幫助,而藍色的點則代表有負向的影響。我們也可以觀察到以下情況:當使用 LRP-0 時,產生了相當多的雜訊;LRP-ε 的效果看起來相對不錯,並且減少了雜訊點的出現;而最右邊的 LRP-γ 則沒有出現對辨識結果有負面影響的點,因此沒有藍色點。最後論文又提了一種方法是在神經網路中依據不同層使用不同的計算方法,其中在最後的全連階層使用 LRP-0,在深層取得比較多特徵的地方使用 LRP-ε,在淺層的地方使用 LRP-γ。最終的結果看起來遠比三個單獨使用效果顯著。
各位可以試試看這個互動網站,裡面實現了 LRP 方法,並可以調整參數控制解釋性。
DeepLIFT 是一種反向傳播的方法,類似於 LRP。每個單元 i
都被分配一個歸因值,表示該單元對於原始網路輸入 x
的激發相對於某個參考輸入 x̄
的相對效應。可以參考下方公式3:
對於所有隱藏層單元,參考值 z̄ji
是通過對網路進行前向傳遞,使用基準輸入 x̄
,並記錄每個單元的激發數值來確定的。與 LRP 一樣,基準通常選擇為零。相關性傳播過程可以通過下方公式4描述。
簡單來說 DeepLIFT 理論的核心概念是將模型的輸入特徵歸因到每個特徵的貢獻度,以解釋模型的預測過程。如果要實作 DeepLIFT 可以參考原始論文在 GitHub 的開源套件 DeepLIFT: Deep Learning Important FeaTures。此外在 SHAP 套件提供的 DeepExplainer 解釋方法就是 DeepLIFT 和 Shapely values 的結合。詳細的實作內容可以參考 [Day 17] 解析深度神經網路:使用Deep SHAP進行模型解釋。
本系列教學內容及範例程式都可以從我的 GitHub 取得!